/*
 * DTDEntity.h
 *
 *  Created on: 29 mars 2011
 *      Author: gdoussin
 */

#ifndef DTDENTITYELEMENT_H_
#define DTDENTITYELEMENT_H_

#include "XMLEntity.h"
#include "DTDRule.h"
#include <string>
#include <vector>

class DTDEntityElement: public XMLEntity
{
protected :
	std::string name;
	DTDRule* rule;
public:
	DTDEntityElement(std::string nodeName, std::string name);

	/**
	 * Exporte la règle sous forme de string
	 */
	std::string toString();

	/**
	* Définit la règle associée au ComplexRule
	*/
	void setRule(DTDRule* rule);

	/**
	 * Vérifie la validité des règles pour les balises des noeuds enfant.
	 * 	TRUE : une erreur a été rencontrée
	 */
	bool checkChildListValidity(std::vector<std::string> balises);

	/**
	 * Récupère le nom du DTD Element
	 */
	std::string getName();
};

#endif /* DTDENTITYELEMENT_H_ */
